<?php

class WucHora extends TTemplateControl {
//<editor-fold defaultstate="collapsed" desc="Propiedades">
  public function getInicializarHoraSistema() { return $this->getViewState("InicializarHoraSistema"); }
  public function setInicializarHoraSistema($value) { $this->setViewState("InicializarHoraSistema", $value); }

  public function getSelectedValueHora() { return $this->getViewState("SelectedValueHora"); }
  public function setSelectedValueHora($value) { $this->setViewState("SelectedValueHora", $value); }

  public function getSelectedValueMinutos() { return $this->getViewState("SelectedValueMinutos"); }
  public function setSelectedValueMinutos($value) { $this->setViewState("SelectedValueMinutos", $value); }

  public function getSelectedIndex() { return $this->getViewState("SelectedIndex"); }
  public function setSelectedIndex($value) { $this->setViewState("SelectedIndex", $value); }

  public function getEnabledHora() { return $this->getViewState("EnabledHora"); }
  public function setEnabledHora($value) { $this->setViewState("EnabledHora", $value); }

  public function getEnabledMinutos() { return $this->getViewState("EnabledMinutos"); }
  public function setEnabledMinutos($value) { $this->setViewState("EnabledMinutos", $value); }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Metodos Privados">
  /**
   * carga el combo de horas
   * @author VSR, 27/04/2012
   */
  private function cargarHoras() {
    $totalHoras = 23;
    $item = null;
    $newHora = "";
    $selectedValue = "";

    try {
      for($i=0; $i <= $totalHoras; $i++){
        $newHora = ($i <= 9) ? "0".$i : $i;
        $item = new TListItem($newHora,$newHora);
        $this->ddlHora->Items->insertAt($i, $item);
      }

      //se asigna el valor indicado por el usuario
      if(!Utilidades::isNullOrEmpty($this->getSelectedValueHora())) { $selectedValue = $this->getSelectedValueHora(); }
      if (!Utilidades::isNullOrEmpty($selectedValue)) {
        $this->ddlHora->SelectedValue = $selectedValue;
      }
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * carga el combo de minutos
   * @author VSR, 27/04/2012
   */
  private function cargarMinutos() {
    $totalMinutos = 59;
    $item = null;
    $newMinutos = "";
    $selectedValue = "";

    try {
      for($i=0; $i <= $totalMinutos; $i++){
        $newMinutos = ($i <= 9) ? "0".$i : $i;
        $item = new TListItem($newMinutos,$newMinutos);
        $this->ddlMinutos->Items->insertAt($i, $item);
      }

      //se asigna el valor indicado por el usuario
      if(!Utilidades::isNullOrEmpty($this->getSelectedValueMinutos())) { $selectedValue = $this->getSelectedValueMinutos(); }
      if (!Utilidades::isNullOrEmpty($selectedValue)) {
        $this->ddlMinutos->SelectedValue = $selectedValue;
      }
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * iniciliza los controles
   * @author VSR, 27/04/2012
   */
  private function inicializarHora() {
    date_default_timezone_set(Utilidades::ZONA_HORARIA);
    $horaActual = date("H");
    $minutoActual = date("i");

    try {
      $inicializarHoraSistema = false;
      $enabledHora = $this->getEnabledHora();
      $enabledMinutos = $this->getEnabledMinutos();
      if(!Utilidades::isNullOrEmpty($this->getInicializarHoraSistema())) { $inicializarHoraSistema = (strtoupper($this->getInicializarHoraSistema()) == "TRUE" || $this->getInicializarHoraSistema() == "1") ? true : false; }
      
      if ($inicializarHoraSistema) {
        $this->ddlHora->SelectedValue = $horaActual;
        $this->ddlMinutos->SelectedValue = $minutoActual;
      }

      $this->ddlHora->Enabled = $enabledHora;
      $this->ddlMinutos->Enabled = $enabledMinutos;

    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }

  }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Metodos Publicos">
  /**
   * obtiene el valor del combo hora
   * @return <type>
   * @author VSR, 27/04/2012
   */
  public function obtenerSelectedValueHora() {
    $valor = "";
    if(!Utilidades::isNullOrEmpty($this->getSelectedValueHora())) {
      $valor = $this->getSelectedValueHora();
    } else {
      $valor = $this->ddlHora->SelectedValue;
    }
    return $valor;
  }

  /**
   * obtiene el valor del combo minutos
   * @return <type>
   * @author VSR, 27/04/2012
   */
  public function obtenerSelectedValueMinutos() {
    $valor = "";
    if(!Utilidades::isNullOrEmpty($this->getSelectedValueMinutos())) {
      $valor = $this->getSelectedValueMinutos();
    } else {
      $valor = $this->ddlMinutos->SelectedValue;
    }
    return $valor;
  }

  /**
   * asigna el valor al combo hora
   * @return <type>
   * @author VSR, 27/04/2012
   */
  public function asignarSelectedValueHora($value) {
    if ($this->ddlHora->Items->Count == 0) { $this->cargarHoras(); }
    if(Utilidades::isNullOrEmpty($value)) {
      $this->ddlHora->SelectedValue = "00";
    } else {
      $this->ddlHora->SelectedValue = $value;
    }
  }

  /**
   * asigna el valor al combo minutos
   * @return <type>
   * @author VSR, 27/04/2012
   */
  public function asignarSelectedValueMinutos($value) {
    if ($this->ddlMinutos->Items->Count == 0) { $this->cargarMinutos(); }

    if(Utilidades::isNullOrEmpty($value)) {
      $this->ddlMinutos->SelectedValue = "00";
    } else {
      $this->ddlMinutos->SelectedValue = $value;
    }
  }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Eventos Controles">
  public function onLoad($param) {
    parent::onLoad($param);
    //solo la primera vez se carga el combo con los datos
    if (!$this->Page->IsPostBack) {
      if ($this->ddlHora->Items->Count == 0) { $this->cargarHoras(); }
      if ($this->ddlMinutos->Items->Count == 0) { $this->cargarMinutos(); }
    }
    $this->inicializarHora();

  }
//</editor-fold>
}
?>
